package done.easy_701_800;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

import java.util.List;

/**
 * 728. Self Dividing Numbers 自除数
 * <p>
 * 自除数 是指可以被它包含的每一位数除尽的数。
 * 例如，128 是一个自除数，因为 128 % 1 == 0，128 % 2 == 0，128 % 8 == 0。
 * 还有，自除数不允许包含 0 。
 * 给定上边界和下边界数字，输出一个列表，列表的元素是边界（含边界）内所有的自除数。
 * <p>
 * 示例 1：
 * 输入：上边界left = 1, 下边界right = 22
 * 输出： [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]
 *
 * @author 大硕
 * 2019-03-31 11:39 PM
 **/
@Slf4j
public class SelfDividingNumbers {

    @SuppressWarnings("all")
    public List<Integer> selfDividingNumbers(int left, int right) {
        // 190401 first
        return null;
    }

    @Test
    public void test() {
        log.info("{}", selfDividingNumbers(1, 22));
    }
}

































/*
public List<Integer> selfDividingNumbers(int left, int right) {

    List<Integer> result = new ArrayList<>();

    for (int i = left; i <= right; i++) {
        left = i;

        while (left != 0) {
            // 模除取余数
            int num = left % 10;

            if (num == 0) {
                break;
            }

            if (num == 0 || i % num != 0) {
                break;
            }

            // 除完取整数部分
            left /= 10;
        }

        if (left == 0) {
            result.add(i);
        }
    }

    return result;
}
*/
